#ifndef ORDERSTATISTICSWIDGET_H
#define ORDERSTATISTICSWIDGET_H

#include <QWidget>
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QLabel>
#include <QProgressBar>
#include <QFrame>
#include <QTimer>
#include "ordermanager.h"

// 使用命名空间
using namespace RestaurantSystem;

/**
 * @brief 订单统计信息组件
 * 
 * 提供实时订单统计信息展示：
 * - 今日订单概况
 * - 各状态订单数量
 * - 营业额统计
 * - 完成率进度条
 */
class OrderStatisticsWidget : public QWidget
{
    Q_OBJECT

public:
    explicit OrderStatisticsWidget(QWidget *parent = nullptr);
    ~OrderStatisticsWidget();

    /**
     * @brief 更新统计信息
     * @param stats 统计数据
     */
    void updateStatistics(const OrderStatistics& stats);
    
    /**
     * @brief 设置是否显示今日焦点
     * @param enabled 是否启用今日焦点模式
     */
    void setTodayFocus(bool enabled = true);

private:
    /**
     * @brief 设置界面布局
     */
    void setupLayout();
    
    /**
     * @brief 设置标签组件
     */
    void setupLabels();
    
    /**
     * @brief 更新标签显示
     * @param stats 统计数据
     */
    void updateLabels(const OrderStatistics& stats);
    
    /**
     * @brief 创建统计项
     * @param title 标题
     * @param value 数值
     * @param color 颜色
     * @return 标签组件
     */
    QWidget* createStatItem(const QString& title, const QString& value, const QString& color = "#333333");
    
    /**
     * @brief 格式化金额显示
     * @param amount 金额
     * @return 格式化后的字符串
     */
    QString formatAmount(double amount) const;
    
    /**
     * @brief 计算完成率
     * @param completed 已完成数量
     * @param total 总数量
     * @return 完成率(0-100)
     */
    int calculateCompletionRate(int completed, int total) const;

private:
    // 主布局
    QHBoxLayout* m_mainLayout;
    
    // 统计项容器
    QWidget* m_statsContainer;
    QHBoxLayout* m_statsLayout;
    
    // 统计标签
    QWidget* m_totalOrdersItem;
    QLabel* m_totalOrdersValue;
    
    QWidget* m_pendingOrdersItem;
    QLabel* m_pendingOrdersValue;
    
    QWidget* m_preparingOrdersItem;
    QLabel* m_preparingOrdersValue;
    
    QWidget* m_completedOrdersItem;
    QLabel* m_completedOrdersValue;
    
    QWidget* m_cancelledOrdersItem;
    QLabel* m_cancelledOrdersValue;
    
    QWidget* m_revenueItem;
    QLabel* m_revenueValue;
    
    QWidget* m_avgOrderValueItem;
    QLabel* m_avgOrderValueValue;
    
    // 进度条
    QWidget* m_progressContainer;
    QVBoxLayout* m_progressLayout;
    QLabel* m_progressLabel;
    QProgressBar* m_completionProgressBar;
    
    // 分隔线
    QFrame* m_separatorLine;
    
    // 当前统计数据
    OrderStatistics m_currentStats;
    
    // 配置
    bool m_todayFocus;
    
    // 动画效果定时器
    QTimer* m_animationTimer;
    int m_animationStep;
    int m_targetProgress;
    int m_currentProgress;
    
    // 样式常量
    static const QString STAT_ITEM_STYLE;
    static const QString PROGRESS_STYLE;
};

#endif // ORDERSTATISTICSWIDGET_H
